package com.likersai.opon.pojo.bo;

import com.likersai.opon.pojo.entity.Menu;
import lombok.Data;

import java.util.ArrayList;
import java.util.List;

/**
 * 菜单树结构
 *
 * @author sun.ye
 * @since 2021-03-14 18:31
 */
@Data
public class MenuTreeModel {

    /**
     * 主键
     */
    private Long id;

    /**
     * 菜单名称
     */
    private String name;

    /**
     * 菜单编码
     */
    private String code;

    /**
     * 菜单标题
     */
    private String title;
    /**
     * 路由位置
     */
    private String router;

    /**
     * 文件位置
     */
    private String filePath;

    /**
     * 图标
     */
    private String icon;

    /**
     * 子节点
     */
    private List<MenuTreeModel> children;

    public static MenuTreeModel instanceFrom(Menu menu){
        MenuTreeModel model = new MenuTreeModel();
        model.setId(menu.getId());
        model.setName(menu.getMenuName());
        model.setCode(menu.getMenuCode());
        model.setTitle(menu.getMenuTitle());
        model.setIcon(menu.getIcon());
        model.setRouter(menu.getRouter());
        model.setFilePath(menu.getFilePath());
        return model;
    }

    public void addChildren(MenuTreeModel treeModel){
        if (children == null){
            children = new ArrayList<>();
        }

        children.add(treeModel);
    }
}